/** 
 * 格式化数字，三位一个逗号 100000000 -> 100,000,000
*/
export function numberFormatter(number) {
  let val = number //6800521
  // 翻转顺序
  let valArrReverse = val.toString().split('').reverse()

  // 拼接逗号的字符串
  let valReverseNew = ''

  // 遍历循环加逗号
  valArrReverse.forEach((item, i) => {
    // 判断是3的倍数
    if ((i + 1) % 3 == 0) {
      // 拼个字符串
      valReverseNew += item + ','
    } else {
      valReverseNew += item
    }
  })

  // 拼接后的数组
  let valArrNew = valReverseNew.split('').reverse()
  let valNew = ''
  // 遍历 整合新值
  valArrNew.forEach((item, i) => {
    if (i == 0 && item == ',') {
      return
    } else {
      valNew += item
    }
  })
  return valNew
}

/**
* 数组去重：
* 主要针对数组中的元素是对象或数组等复杂类型的对象,简单的数据也可用
* @ param array
*/
export function uniqueArray(array) {
  // 将数组值转为 字符串
  let strArr = array.map((item) => JSON.stringify(item))
  // 去重后 字符串对象 数组
  let strUniqueArr = [...new Set(strArr)]
  console.log(strUniqueArr)
  let newArr = strUniqueArr.map((item) => JSON.parse(item))
  return newArr
}

/**
 * 创建唯一字符串，可用作key值 
 * @returns {string}
 */
 export function createUniqueString() {
  const timestamp = +new Date() + ''
  const randomNum = parseInt((1 + Math.random()) * 65536) + ''
  return (+(randomNum + timestamp)).toString(32)
}

/**
 * 表格时间格式化：y-m-d h:m:s
 * @param date
 */
 export function formatDate(date) {
  if (cellValue == null || cellValue == "") return "";
  var date = new Date(cellValue)
  var year = date.getFullYear()
  var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
  var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
  var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
  var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
  var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
  return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
}